The instructions of a system of this kind are written in a high-level language such as the language CHILL standardized by the CCITT. A system of this kind usually takes around 100 man-years to write. Once written, it is often necessary to modify it, for example to cater for new conditions. These changes can represent a significant fraction of the final total cost.
A known way of structuring software systems is to use a composite structure made up of software components. These components can be either "functional blocks" operating on external data or "objects" combining data and procedures using the data, for example. The CCITT SDL system and the ISO ESTELLE system are typical of systems using functional blocks. Each software component implements an assigned function. It may use another component to carry out some of the operations involved in that function. The components communicate with each other by means of messages.
In known systems writing and modification are difficult and costly because of the extent of interaction between the components, requiring a plurality of interfaces for each component.